Guild icon
swift-developers-japan
開発環境, ライブラリ / xamarin
2:56 AM
事例です
Avatar
どういうモチベーションで採用したのか気になる
Avatar
日本で有名どころだと http://qiita.com/amay077/items/b7235aefab8d2e3b72f1 に続いて2つ目?? (edited)
新年あけましておめでとうございます。 今年も Xamarin 推しで参ります、よろしくお願いします。 2013年大晦日の紅白歌合戦、NHK が iPhone/Android 用のアプリを配信していました。
  • [紅白アプリ|第6...
Avatar
omochimetaru 7/20/2017 3:14 AM
モチベーションはiOS/Androidクロス実装じゃないかしら。
Avatar
ReactNativeはクロス実装出来ないんだっけ?
Avatar
有名どころだと http://qiita.com/amay077/items/b7235aefab8d2e3b72f1 に続いて2つ目??
あ、Xamarin Formsだと、という意味でした
(edited)
新年あけましておめでとうございます。 今年も Xamarin 推しで参ります、よろしくお願いします。 2013年大晦日の紅白歌合戦、NHK が iPhone/Android 用のアプリを配信していました。
  • [紅白アプリ|第6...
Avatar
幾つか他の手段はあるだろうし、その中でXamarinになる決め手は何だったのか、というのが知りたい (edited)
Avatar
omochimetaru 7/20/2017 3:15 AM
なるほど。
3:15 AM
ReactNativeはクロス実装できるし、Discord/iOS appがそれで作られてるけど
3:16 AM
Android版はパフォーマンスの問題がつらくて実際採用されていないので
3:16 AM
ってDiscordチームが言ってたので
Avatar
ふむ
Avatar
omochimetaru 7/20/2017 3:16 AM
まあ実質的に厳しいかも。イカ2の通話機能も内蔵してるから、機能的にDiscordに似てるし。
3:17 AM
語ってほしいけど多分このサーバーには居ないだろうなあ・・・
Avatar
仮にReactNativeでも同等のコストで要件満たせるとしても、C#エンジニア多くてWeb系少ないみたいな事情で、Xamarin選んだりもありそう( ´・‿・`)
Avatar
omochimetaru 7/20/2017 3:41 AM
それは、内製だろうってことですか?
Avatar
あ、うっかり内製ぽく考えてしまいましたが、微妙ですね。でも既存の関係ある会社との都合とかでXamarinの方が相性良いとかもあり得る? (edited)
Avatar
omochimetaru 7/20/2017 3:42 AM
Super Mario RUNがUnity製だったんでそういう意味ではこれもC#ですね。
Avatar
そういうニュアンスでした。
🙂 1
Avatar
omochimetaru 7/20/2017 4:11 AM
さっきの件、ソース貼っておく “Using React Native: One Year Later” by @fanghaochen https://blog.discordapp.com/using-react-native-one-year-later-91fd5e949933
 specifically on touch events was not at an acceptable level even on higher end devices.
When I interviewed for the iOS developer opening at Discord last spring, the tech lead Stanislav told me:
👍 1
Avatar
少し前の話題みたいですが、私自身がSwiftの後Xamarinの勉強もしてみようかと考えていて興味深かったので、新参者ですがちょっとお邪魔させてください。 私の場合ですが、何故Xamarinをという考えに至ったのかには大きく3つの理由があります。 1つ、Windowsで開発できるということ。 最終的にはMacでビルド・検証しなくてはいけないのですが、うちの会社は元々社員の開発用端末はWindowsで、MacはiOS向けアプリの開発勉強のために1台買ってもらっただけしかありません。 今まで地元でMacを見たこともなく(電気屋さんでも売っているのを見たことがない)、今回本社から送られてきたのが初めて触ったMacというくらい馴染みがないというのもあり、Windowsで開発できるのはやりやすいなと思いました。 ※Switchや紅白の例は、この理由はほぼないかとは思います。 2つ、XAML+C#という組み合わせ Xamarin.Formsの話になりますが、XAML+C#という組み合わせがWPFの開発経験があるととっつきやすいです。 また、Swiftはかなり新しい言語なのでバージョンが上がる時に文法が結構変わることもあって、保守を考えるとC#というのもありだと思いました。 ※バージョン指定できますし、企業向けアプリだと会社支給端末のバージョンがバンバン勝手に上げられるというのはあまりないので、これはそれほど気にしなくても良いかなとは思うのですが。 3つ、クロス実装が可能 今、私がiOS向けのアプリ開発について勉強している理由のうちの1つに、元々Android用に作っていたアプリをiOS用に作るというのが受注しそうだというのがあります。 ゆえに今後のことを考えると、クロス実装出来るようにした方がメンテナンスが楽そうだと思いました。 以上3つの理由でXamarinもしてみようとは考えていますが、 ・今後本格的な開発のためにMacは追加購入してもらえる予定 ・最終的にXamarinを採用することになるにせよSwiftの知識はあった方が良い ・個人的にSwiftの勉強もしたかった ということで、現状は先にSwiftから勉強を始めています。
👍 1
Avatar
ザマリンの話題はなかなか無いので、 両方やってみたあとウィンドウズ開発者目線の意見は気になりますねー
Avatar
先の話になりそうですが、実際にXamarinについて勉強してみたら、ここに報告してみたいと思います。
🙂 4
Avatar
2010年頃からObjective-C、Swiftは1.3頃からSwift3.xくらいまでいじってるiOSメインのエンジニアです。 ここ最近業務で割とガッツリXamarin.iOSを使ったので感想書いてみます。 Xcode + SwiftとXamarin.iOSを比較してのよかったこと、よくなかったこと、どっちもどっちなこと、的な感じで。 (プロジェクトでは、Xcode8とXamarin 7.1を主に利用していました) ではさっそく。 よかったこと
  • C#のおかげでSwiftの破壊的なアップデートに巻き込まれない。Xcode9へのアップデートもシンタックスは変更なしでOK
  • C#がデフォルトで備えてるLINQが強力
  • Visual Studioのビルドが速い
  • Visual Studioが安定してる(なんならXcodeよりSimulatorの立ち上がる安定感が上)
  • コード補完も速い
  • パッケージマネージャのNugetがCocoaPodsと比べてだいぶ安定している気がする Xamarinを採用したことでこまった、もしくは困りそうなこと
  • 現時点で複数バージョンのXamarinを共存させることができないようなので、いわゆる「デッキ」が組めない(Xcode_8.3.3.app、Xcode_9.2.0.appといった名前で複数バージョンの開発環境を保持するアレ。Xamarin.iOSは1対1でXcodeの指定バージョンと紐づいてしまうので、古いバージョンに戻したい場合は古いVisual Studioのインストーラを取っておいて、Visual Studioのアンインストール&インストールしなおしが必要だった)
  • バージョンアップするなら一気にアップデートしないといけないので、受託などで複数案件を掛け持つ場合は厳しそう)
  • Nugetに対応していない広告SDKなどを自力でバインディングするのはそこそこパワーが要る
  • C#のバージョンが古くNull safeに書くのが困難(Objectは全てオプショナルのようなものなのだがnullに触ると死ぬので、?を多様してクラッシュを避ける感じ)
  • インストール容量40GBがMac SSDに厳しい XamarinもXcodeもどっちもどっちなところ
  • iOS SDKのメジャーバージョンアップでちょこちょこ振る舞いが変わるのはどちらも同じ
  • エディタはどちらもところどころ使いづらい。特にMacのVisual Studioエディタは日本語入力が結構つらい。自動保存のたびにBOMが増え続ける不具合などもあった という感じです。
で、アリなの?というところですが、エンジニアの裁量が大きい組織であれば「アリ」だと思います。 思いのほか安定していて普通に業務に耐えうる品質です。コード補完が速い、ビルドが速い、だけでも十分価値があって、Xcodeのプロダクトと複数保守しているとついついXamarin側をいじりたくなるくらい快適でした。リリースしたアプリも99.8%くらいのクラッシュフリーで動いてますし、内部的にはRubymotionなどと同じでネイティブなコンポーネントが使われています。 あまり使っている方はいらっしゃらないかもですが、何かのご参考になれば幸いですー
🙏 4
👍 1
6:01 PM
あーあと async/await で非同期処理が書けるのもよかったですね。swiftにも入るそうですが、あれは良いものでした。
Avatar
omochimetaru 2/26/2018 6:02 PM
おおこれは良いレビュー・・・
Avatar
そうだ、NUnitも枯れていて良かったです、パラメタライズドテストがとても見やすく書ける
6:03 PM
また思い出したら書きますw
6:09 PM
なにか聞きたいことなどあれば答えられますので、遠慮なくメンション飛ばしてください〜 (メンション無いとおそらく気づけないです)
Exported 30 message(s)
Timezone: UTC+0